/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controle;

import entidades.Laboratorio;
import entidades.LaboratorioPK;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import persistencia.RepositorioJPALaboratorio;

/**
 *
 * @author Gleydson
 */
@ManagedBean(name = "LaboratoriosBean")
@ViewScoped

public class LaboratoriosBean {
    private Laboratorio bean;
    private RepositorioJPALaboratorio repositorio;
    private List<Laboratorio> lista;
    private boolean insert;
    private LaboratorioPK pk;
    
    public LaboratoriosBean(){
        bean = new Laboratorio();
        repositorio = new RepositorioJPALaboratorio();
        lista = repositorio.getAll();
        insert = true;
    }    

    public void botaoNovoAction(){
        insert = true;
        pk = new LaboratorioPK();
        bean = new Laboratorio();
    }
    
    public void botaoAlterarAction(){
        pk = bean.getLaboratorioPK();
        insert = false;   
    }

    public void botaoApagarAction(){
        getRepositorio().delete(getBean());  
        lista = repositorio.getAll();
    }
    
    public void botaoSalvarAction(){
        bean.setLaboratorioPK(pk);
        if(insert)
            getRepositorio().insert(getBean());
        else
            getRepositorio().update(getBean());
        
        lista = repositorio.getAll();
    }

 
    
    public Laboratorio getBean() {
        return bean;
    }

    public void setBean(Laboratorio bean) {
        this.bean = bean;
    }

    public RepositorioJPALaboratorio getRepositorio() {
        return repositorio;
    }

    public void setRepositorio(RepositorioJPALaboratorio repositorio) {
        this.repositorio = repositorio;
    }

    public List<Laboratorio> getLista() {
        return lista;
    }

    public void setLista(List<Laboratorio> lista) {
        this.lista = lista;
    }

    /**
     * @return the pk
     */
    public LaboratorioPK getPk() {
        return pk;
    }

    /**
     * @param pk the pk to set
     */
    public void setPk(LaboratorioPK pk) {
        this.pk = pk;
    }
    
}
